package cn.gwm.flink.streaming.dwm.charge.model;

import cn.gwm.flink.streaming.constant.VehicleType;
import lombok.Data;

/**
 * @Author: liangguang
 * @Date: 2023/02/22
 * @Description: 充电主题 PHEV 常量字段池
 */
@Data
public class ChargePhevConstant extends ChargeConstant {

    private static final ChargeConstant CONSTANT = new ChargeConstant()
            .setObcConnectStsEv("OBC_ConnectSts")
            .setObcCclineConnectSts("OBC_StstCCLine")
            .setBmsDcchrgConnect("BMS_StsCC2Line")
            // fixme: 暂时使用该字段 后续需要调整
            .setBmsChrgSts("VCU_Charg_Sts")
            .setVcuChrgnSts("VCU_Charg_Sts")
            .setTboxBattSoc("Tbox_BattSOCLim")
            .setBmsSoc("BMS_DisSOC")
            .setBmsSoe("BMS_AvailEnergy")
            .setBmsSoh("BMS_SOH_R")
            .setBmsSohCor("BMS_SOH_COR")
            .setObcChrgrOutputVolt("OBC_ActOutputVolt_HV")
            // fixme: 快充无该字段
            .setEvccEvseOutputV("EVCC_EVSEOutputV")
            .setObcChrgrOutputCurr("OBC_ActOutputCurr_HV")
            // fixme: 快充无该字段
            .setEvccEvseOutputC("EVCC_EVSEOutputC")
            // fixme: 快充无该字段
            .setEvccEvseOutputP("EVCC_EVSEOutputP")
            .setBmsBattCurr("BMS_PackCurr")
            .setBmsBattVolt("BMS_PackVolt")
            .setBmsRmcModuleTempMax("BMS_BattTempMax")
            .setBmsRmcModuleTempMin("BMS_BattTempMin")
            // fixme: 快充无该字段
            .setBmsModuleTempAverage("BMS_ModuleTempaverage")
            .setAcAmbTemp("ACAmbtTemp")
            // fixme: dwd层标准化过滤掉了
            .setFaultCode("HCU_DTCNumber1")
            .setBmsChrgTime("BMS_ChrgTime")
            .setBmsInnerSOC("BMS_BattSOC")
            .setBmsSWVersion("BMS_SWVersion_PHEV")
            .setSohCor("SOH_COR")
            // 加热 制冷 都是同一个信号，根据数值进行区分
            .setBmsHeatReq("HCU_BMSthermalReq")
            .setBmsCoolReq("HCU_BMSthermalReq")
            .setBmsInnerSocMax("BMS_CellSOCMax")
            .setBmsInnerSocMin("BMS_CellSOCMin")
            .setBmsCellVoltMax("BMS_CellMaxVolt")
            .setBmsCellVoltMin("BMS_CellVoltMin")
            .setAcOpenSts("ACOnOffIconCmd")
            .setPlugChrgnMode("PlugChrgnMode")
            .setIntellgntChrgnModResp("IntellgntChrgnModResp")
            .setObcChrgGunSts("OBC_ChrgrGunSts")
            .setEvccEvseOutput("EVCC_EVSEOutput")
            .setDiscountPower("DiscountPower")
            .setExpensivePower("ExpensivePower")
            .setDiscountTime("DiscountTime")
            .setExpensiveTime("ExpensiveTime")
            .setPowerType(VehicleType.POWER_TYPE_PHEV);

    private ChargePhevConstant() {
    }

    public static ChargeConstant getInstance() {
        return CONSTANT;
    }

}
